/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pl.javame.lab1;

import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.*;

/**
 *
 * @author student
 */

public class MyApp extends MIDlet implements CommandListener{


    private final Command cWyjscie = new Command("Wyjscie", Command.EXIT,1);
    private final Command cDalej = new Command("Dalej", Command.OK, 1);
    private final Command cWstecz = new Command("Back", Command.BACK, 1);

    private String[] pracownicyPG = new String [] {"Mariusz Matuszek", "Krzysztof Bruniecki", "Jacek Lebiedź", "Krzysztof Bikonis"};

    private Display display;
    private Form formularz;
    private ChoiceGroup listaPracownikow;
    private TextField ocena;
    private int iOcena=1;
    private TextBox obelgi;
    private Form wynik;
    //private int widok=1;
    
    public MyApp()
    {
        // widok 1

        formularz = new Form("Lista pracownikow PG:");
        listaPracownikow = new ChoiceGroup(null, ChoiceGroup.EXCLUSIVE, pracownicyPG, null);
        ocena = new TextField("Niechec (1-10):", "", 2, TextField.NUMERIC);

        formularz.append(listaPracownikow);
        formularz.append(ocena);
        formularz.addCommand(cWyjscie);
        formularz.addCommand(cDalej);
        formularz.setCommandListener(this);

        //widok 2
        obelgi = new TextBox("Obelgi:", "", 200, 0);

        obelgi.addCommand(cWstecz);
        obelgi.addCommand(cDalej);
        obelgi.addCommand(cWyjscie);
        obelgi.setCommandListener(this);

        //widok = 3
        wynik = new Form("Wynik:");

        wynik.addCommand(cWstecz);
        wynik.addCommand(cWyjscie);
        wynik.setCommandListener(this);
    }

    public void startApp() {
        display = Display.getDisplay(this);
        display.setCurrent(formularz);

    }
  
    public void commandAction(Command c, Displayable d) {

        if(c == cWyjscie)
        {
            notifyDestroyed();
        }else if(c == cDalej)
        {
             if/*(widok == 1)*/ (d==formularz)
            {
                //sprawdzenie warunkow, jeśli ok, to zmień widok, a jesli błędy wyswietl alert
                boolean poprawnaOcena = false;
                boolean vip = false;

                if(pracownicyPG[listaPracownikow.getSelectedIndex()].equals("Krzysztof Bruniecki"))vip = true;

                String sOcena = ocena.getString();

                if(sOcena != null && sOcena.length() != 0)
                {
                    iOcena = Integer.parseInt(sOcena);
                    if(iOcena >=1 && iOcena <=10)poprawnaOcena = true;

                }

                if(poprawnaOcena == false)
                {
                    Alert blad = new Alert("Blad!!!", "Ocena ma być liczbą naturalną z przedziału 1-10!!!", null, AlertType.ERROR);
                    blad.setTimeout(2000);
                    display.setCurrent(blad, formularz);

                }else if(vip == true)
                {
                    Alert blad = new Alert("Uwaga!!!", "Uwazaj co piszesz!!!"/*"Lepiej wybierz inną osobę!!!"*/, null, AlertType.WARNING);
                    blad.setTimeout(2000);

                    //display.setCurrent(blad, formularz); // GDY MA POWRACAC DO FORMULARZA

                    // ZAKOMENTOWAC GDY MA POWRACAC DO FORMULARZA
                    obelgi.setString("");
                    display.setCurrent(blad, obelgi);
                    //widok++;

                    //
                }

               


                if(poprawnaOcena==true && vip == false) //przejscie do nowego widoku
                {
                    obelgi.setString("");
                    display.setCurrent(obelgi);
                    //widok++;
                }
            }else if/*(widok == 2)*/ (d==obelgi)
            {
                String sWynik = pracownicyPG[listaPracownikow.getSelectedIndex()] + "\n" + obelgi.getString() + "\n";
                for(int i=0; i<iOcena; i++)sWynik += "!";

                wynik.deleteAll();
                wynik.append(sWynik);
                display.setCurrent(wynik);
                //widok++;

            }

        }else if(c ==cWstecz )
        {
            if/*(widok == 2)*/ (d==obelgi)
            {
                display.setCurrent(formularz);
            }else if/*(widok == 3)*/ (d==wynik)
            {
                display.setCurrent(obelgi);
            }
            //widok--;
        }
    }


    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

}
